草庐IT

Android Circular 确定 ProgressBar

全部标签

c++ - 确定字符是否属于一组已知字符的最快方法 C++

给定任何字符,确定该字符是否属于已知字符集(而非容器类型)的最快方法是什么。换句话说,什么是实现条件的最快优雅的方式:charc='a';if(c==ch1||c==ch2||c==ch3...)//做点什么...是否有一个STL容器(我想它可能是unordered_set?),我可以将字符作为键传递给它,如果键存在它会返回true吗?任何具有O(1)查找时间的东西都适合我。 最佳答案 我走得更远,写了两个版本,一个基于查找数组,另一个基于使用底层哈希的集合。classCharLookup{public:CharLookup(con

c++ - 确定 C++ 中包含文件的编译时存在

我正在尝试编写一些可移植的C++库代码,这些代码最初将依赖于Boost.Regex,然后在编译器支持时转移到TR1,并在从std转移后最终转移到C++0x规范::tr1命名空间到标准。下面是我想用预处理器做的一些伪代码:if(exists(regex))//checkifIcan#include{#include//perTR1if(is_namespace(std::tr1))//areweonTR1orC++0x?{usingstd::tr1::regex;}else{usingstd::regex;}}else//fall-backtoboost{#includeusingboo

c++ - 如何确定 C++ 对象是否已被释放?

我有一个previousquestion我在其中描述了当我尝试访问已被第三方函数释放的对象时捕获异常的困难。该函数有时会释放对象,有时不会释放对象。为了避免必须使用try/catchblock来捕获上一个问题中描述的SEH异常,我需要能够判断对象是否已被释放。我如何确定一个C++对象是否已被释放或仍然是一个有效的指针? 最佳答案 您不能仅通过查看内存位置就可以轻易判断该对象是否仍处于分配状态。可能有一些黑魔法可以做到这一点,但更简洁的方法是在对象的析构函数中构建回调机制。 关于c++-如

排序程序不起作用,不确定为什么

voidsort(intvalues[],intn){intsmallestSpot=0;for(longlongi=0;i我的排序算法覆盖了第一个数字是什么,我找不到原因,请提供帮助。谢谢。看答案感谢Coldspeed和GaurangVyas通过表演,我们可以实现对代码的工作版本。代码#includevoidsort(intvalues[],intn){intsmallestSpot=0;for(longlongi=0;i在尝试编码算法之前,请使用笔和纸跟踪您的算法。我建议您看到许多分类算法这个链接并获得有关分类问题和解决方法的视觉理解。编辑显示输出

c++ - 确定所有由 g++ 内联的函数调用

这个问题在这里已经有了答案:Howwilliknowwhetherinlinefunctionisactuallyreplacedattheplacewhereitiscalledornot?(10个答案)关闭8年前。我正在尝试诊断一个奇怪的性能问题,我认为它与GCC未能在C++中内联某些函数调用有关,但我不确定是哪个函数调用。GCC是否有一个标志来列出执行内联的所有行号?

c++ - 确定当前线程是否具有低 I/O 优先级

if(reader.is_lazy())gototldr;我有一个后台线程执行一些I/O密集型后台类型的工作。为了取悦其他正在运行的线程和进程,我使用SetThreadPriority将线程优先级设置为“后台模式”,像这样:SetThreadPriority(GetCurrentThread(),THREAD_MODE_BACKGROUND_BEGIN);但是,THREAD_MODE_BACKGROUND_BEGIN仅适用于WindowsServer2008或更新版本,以及WindowsVista和更新版本,但该程序也需要在WindowsServer2003和XP上运行良好。所以真正的

c++ - Clang 是否比跨平台的 GCC 更具确定性?

我正在考虑用C++编写多用户RTS游戏(部分)的可行性。我很快发现,一个硬性要求是游戏模拟必须完全确定服务器和所有客户端的最后一点,以便能够将网络通信限制为用户输入,而不是游戏状态本身.由于每个人都有不同的计算机,这似乎是一个难题。那么,是否有一些“神奇”的方法可以让C++编译器创建一个在Linux(服务器)、Windows和Mac上完全确定的可执行文件?我认为两个主要的OSSC++编译器是GCC和Clang,所以我想知道在这方面是否一个比另一个表现更好。我也会对任何可用于验证C++确定性的测试套件感兴趣。[编辑]所谓确定性,我的意思是编译后的程序,给定相同的初始状态,并以相同的顺序输

c++ - 确定数值类型 A 是否可以转换为数值类型 B

给定两个数字类型From和To。以下代码是否真的确定了From类型的任何值是否可以表示为To类型的值而不丢失信息?如果是,是否有更短或更易读的确定方法?templatestructcan_cast{staticconstboolvalue=(std::numeric_limits::is_integer||//eitherFromisanintegertypeORstd::is_floating_point::value)&&//...they'rebothfloatingpointtypesAND(std::numeric_limits::is_signed==false||//ei

c++ - 如何确定 UBSAN 是否已使用 clang 或 gcc 编译?

我们使用以下代码来确定是否在编译时为clang和gcc指定了-fsanitize=address。我们如何确定是否指定了-fsanitize=undefined?boolisSanitized=false;#ifdefined(__has_feature)#if__has_feature(address_sanitizer)isSanitized=true;#endif#elifdefined(__SANITIZE_ADDRESS__)isSanitized=true;#endif 最佳答案 我建议您将此作为一个错误提交给ASang

c++ - 如何确定 std::ofstream 打开的文件的当前大小?

我有一个类,它有一个ofstream类型的文件流。构造函数以追加模式打开文件,所有消息始终写入文件末尾。我需要将outputFile写入某个固定大小(比如1Mb),然后我需要关闭、重命名并压缩它,然后打开一个同名的新文件。这需要在文件达到一定大小时完成。我尝试使用tellg()但在互联网上阅读资料(和this)后,我明白这不是正确的方法。由于我是C++的新手,我正在尝试找出最优化和正确的方法来获取ofstream打开的文件的准确当前大小?classLogger{std::ofstreamoutputFile;intcurr_size;Logger(conststd::stringlog